﻿// Copyright 2010 ForgeCraft team
// Licensed under the Educational Community License, Version 2.0 
// http://www.osedu.org/licenses/ECL-2.0

using System;
using System.Collections.Generic;

namespace ForgeCraft {

    public abstract class Command
    {
        public abstract string name { get; }
        public abstract string shortcut { get; }
        public abstract string type { get; }
        public abstract bool consoleUsable { get; }
        public abstract Permission defaultRank { get; }
        public abstract void Use(Player p, string message);
        public abstract void Help(Player p);

        public static CommandList all = new CommandList();
        public static CommandList core = new CommandList();
        public static void InitAll()
        {
            //all.Add(new ());
            all.Add(new CmdAbout());

            all.Add(new CmdCompass());

            all.Add(new CmdDrawDistance());

            all.Add(new CmdForest());
            all.Add(new CmdFreeze());

            all.Add(new CmdHome());

            all.Add(new CmdInstant());
            all.Add(new CmdInv());
            all.Add(new CmdItem());

            all.Add(new CmdKick());
            all.Add(new CmdKill());

            all.Add(new CmdObject());

            all.Add(new CmdPinfo());
            all.Add(new CmdPlayers());

            all.Add(new CmdRepeat());

            all.Add(new CmdSetHome());
            all.Add(new CmdSetSpawn());
            all.Add(new CmdSpawn());
            all.Add(new CmdSummon());

            all.Add(new CmdTime());
            all.Add(new CmdTimelock());
            all.Add(new CmdTp());
            all.Add(new CmdTree());

            all.Add(new CmdWarp());
            all.Add(new CmdWarpAdd());
            all.Add(new CmdWarpRemove());
            all.Add(new CmdWhois());

            core.commands = new List<Command>(all.commands);
        }
    }
}